A pervasive issue in computing technology involves scheduling jobs for execution in a manner that effectively utilizes available resources. These issues may arise, for example, in distributed computing systems where jobs are assigned for periodic execution on selected nodes in a computing cluster. A node may be selected to execute a job based on the node's current and predicted workload, such that executing the job on the selected node is not predicted to cause the selected node to become overloaded. At the same time, efficiently utilizing the node of the cluster may involve attempting to ensure that the nodes are not under-utilized.